perm filename FBUG.OPL[HAL,HE] blob sn#121123 filedate 1974-10-03 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.STITLE FBUG
C00005 00003	LOCAL STORAGE AREA
C00006 ENDMK
CāŠ—;
.STITLE FBUG

;"FREG" TYPES OUT THE FLOATING POINT REGISTERS ON THE VT05 IN
;FLOATING POINT AND OCTAL REPRESENTATION.  NO REGISTERS ARE 
;ALTERED BY THIS PROGRAM AND UPON COMPLETION, CONTROL IS RETURNED
;TO RUG.

FREG:	MOV	R0,-(SP)	;SAVE CPU REGISTERS
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	R3,-(SP)
	MOV	OLDW,-(SP)	;SAVE OLD FORMAT SPECIFICATION
	MOV	OLDD,-(SP)
	MOV	#10.,R0		;SET NEW OUTPUT FORMAT
	MOV	#4,R1
	JSR	PC,FORMAT
	STF	AC0,FPR0	;SAVE THE FLOATING POINT REGISTERS
	STF	AC1,FPR1
	STF	AC2,FPR2
	STF	AC3,FPR3
	LDF	AC4,AC1
	STF	AC1,FPR4
	LDF	AC5,AC1
	STF	AC1,FPR5
	MOV	#6,R2		;SET LOOP COUNTER
	CLR	R3		;RESET POINTER INTO FR LIST
FLP:	MOV	#OUTC,R0	;TYPE OUT REGISTER NAME
	ADD	R3,R0
	JSR	PC,TYPSTR
	OUTSTR	SPACE
	MOV	#OUTN,R0	;STRING POINT FOR NUMBER 
	LDF	FPR0(R3),AC0	;LOAD A FLOATING POINT REGISTER
	JSR	PC,CVG		;CONVERT TO ASC STRING
	MOV	#OUTN,R0	;TYPE OUT THE STRING
	JSR	PC,TYPSTR
	MOV	#SPACE,R0	;TYPE OUT SOME SPACES
	JSR	PC,TYPSTR
	MOV	FPR0(R3),R0	;TYPE OUT THE FIRST 16 BITS OF REG IN OCT
	JSR	PC,TYPOCT
	MOV	#COMMA,R0	;TYPE A COMMA
	JSR	PC,TYPSTR
	MOV	FPR0+2(R3),R0	;TYPE OUT SECOND 16 BITS
	JSR	PC,TYPOCT
	CRLF
	ADD	#4,R3		;INCREMENT REGISTER POINTER
	SOB	R2,FLP		;CHECK IF ALL 6 REG PRINTED
	JSR	PC,RSTFOR	;RESET OLD I/O FORMAT
	MOV	(SP)+,OLDD
	MOV	(SP)+,OLDW
	MOV	(SP)+,R3	;RESTORE CPU REGISTERS
	MOV	(SP)+,R2
	MOV	(SP)+,R1
	MOV	(SP)+,R0
	LDF	FPR0,AC0	;RESTORE FLOATING POINT REGISTERS
	LDF	FPR1,AC1
	LDF	FPR2,AC2
	LDF	FPR3,AC3
	JMP	RUG		;RETURN TO RUG
	BR	.-4		;DONT CONTINUE

;LOCAL STORAGE AREA

FPR0:	.WORD	0,0	;AC0
FPR1:	.WORD	0,0
FPR2:	.WORD	0,0
FPR3:	.WORD	0,0
FPR4:	.WORD	0,0
FPR5:	.WORD	0,0	;AC5
OUTC:	.ASCIZ	/AC0/
	.ASCIZ	/AC1/
	.ASCIZ	/AC2/
	.ASCIZ	/AC3/
	.ASCIZ	/AC4/
	.ASCIZ	/AC5/
SPACE:	.ASCIZ	/   /
COMMA:	.ASCIZ	/,/
.EVEN
OUTN:	.BLKW	20